home *** CD-ROM | disk | FTP | other *** search
- /*************************************************************************
- * *
- * Copyright (c) 1992, 1993 Ronald Joe Record *
- * *
- * All rights reserved. No part of this program or publication may be *
- * reproduced, transmitted, transcribed, stored in a retrieval system, *
- * or translated into any language or computer language, in any form or *
- * by any means, electronic, mechanical, magnetic, optical, chemical, *
- * biological, or otherwise, without the prior written permission of: *
- * *
- * Ronald Joe Record (408) 458-3718 *
- * 212 Owen St., Santa Cruz, California 95062 USA *
- * *
- *************************************************************************/
-
- #include <math.h>
- #include <stdio.h>
- #ifndef NeXT
- #include <values.h>
- #endif
- #include "x.h"
- #include "params.h"
-
- void
- parseargs(ac, av)
- int ac;
- char **av;
- {
- static int c;
- extern short delay;
- extern int optind, color_offset, demo, negative, maxcrit, use_avg_lyap;
- extern int therm_index, reverse_video;
- extern double therm_min, therm_max;
- extern char *optarg;
- extern double atof();
- extern void usage();
-
- map = Maps[0];
- deriv = Derivs[0];
- setparams(0);
- therm_index = 0;
- therm_min = pmins[0][0];
- therm_max = pmaxs[0][0];
-
- maxperiod=0; minperiod= MAXINT;
-
- while ((c=getopt(ac,av, "^/+012345678:9:RUVZpquvP:T:A:B:C:D:E:F:G:I:J:K:L:M:N:Q:W:X:Y:H:O:S:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:r:s:t:w:x:y:z:"))!=EOF){
- switch (c) {
- case '^': negative=(!negative); break;
- case '/': reverse_video=(!reverse_video); break;
- case '+': axes=(!axes); break; /* overlay plot of axes */
- case '0': demo=1; break;
- case '1': orbits_1d=1; break; /* y bifurcation diagram */
- case '2': orbits_1d=2; break; /* both bifurcation diag */
- #ifdef USE_3D
- case '3': orbits_3d=1; break;
- #endif
- case '4': orbits_1d=3; break; /* x bifurcation diagram */
- case '6': animate=1; break; /* draw animation style */
- case '7': histogram=1; break; /* draw histogram style */
- case '8': lyap=atoi(optarg);
- if (lyap == 5) {
- calclyap = 1;
- if (!find)
- find = 2;
- lyap = 0;
- }
- break;
- /* 0 = no Lyapunov sets */
- /* 1 = bifurcation diagrams only */
- /* 2 = bifurcation and Lyapunov sets */
- /* 3 = 2 but IC = last pt on attractor */
- /* 4 = 2 but IC = critical point */
- /* 5 = 0 but calculate lyapunov exponent */
- case '9': mandel=atoi(optarg);
- break;
- /* 0 = no Mandelbrot/Julia sets */
- /* 1 = Mandelbrot with Lyapunov exponents */
- /* 2 = Mandelbrot in black */
- /* 3 = Rate of Attraction of critical point */
- /* 4 = Use [STARTCOLOR,MINCOLINDEX] for escapees */
- case 'A': params[0]=atof(optarg); Aflag++; break;
- case 'B': params[1]=atof(optarg); Bflag++; break;
- case 'C': params[2]=atof(optarg); Cflag++; break;
- case 'D': params[3]=atof(optarg); Dflag++; break;
- case 'E': params[4]=atof(optarg); Eflag++; break;
- case 'F': params[5]=atof(optarg); Fflag++; break;
- case 'G': params[6]=atof(optarg); Gflag++; break;
- case 'H': height=atoi(optarg);
- traheight=criheight=height;
- if (optind < ac)
- if (av[optind][0] == ',') {
- traheight = atoi(av[optind+1]);
- optind += 2;
- }
- if (optind < ac)
- if (av[optind][0] == ',') {
- criheight = atoi(av[optind+1]);
- optind += 2;
- }
- break;
- case 'I': params[7]=atof(optarg); Iflag++; break;
- case 'J': params[8]=atof(optarg); Jflag++; break;
- case 'K': params[9]=atof(optarg); Kflag++; break;
- case 'L': params[10]=atof(optarg); Lflag++; break;
- case 'M': params[11]=atof(optarg); Mflag++; break;
- case 'N': MINCOLINDEX=atoi(optarg);
- if ((MINCOLINDEX - STARTCOLOR) <= 0) {
- printf("An argument of -N %d ",MINCOLINDEX);
- printf("indicates to set the minimum");
- printf("color index to %d\n",MINCOLINDEX);
- printf("Currently, the compiled value for");
- printf("STARTCOLOR is %d\n",STARTCOLOR);
- printf("The minimum color index must be greater\n");
- exit(-1);
- }
- break;
- case 'O': color_offset=atoi(optarg); break;
- case 'P': critical=atoi(optarg);
- if (critical == 1) { /* critical curves only */
- critical = 1;
- precrit = 0;
- }
- else if (critical == 2) { /* plus precritical */
- critical = 1;
- precrit = 1;
- }
- else if (critical == 3) { /* precrit only */
- critical = 0;
- precrit = 1;
- }
- else if (critical == 4) { /* pre-images of */
- precrit = 2; /* the diagonal only */
- critical = 0;
- }
- else if (critical == 5) { /*attractors divide */
- precrit = 3; /* across diagonal */
- critical = 0;
- }
- else if (critical == 6) { /* pre-images of */
- precrit = 4; /* the origin only */
- critical = 0;
- }
- else if (critical == 7) { /* pre-images of */
- precrit = 5; /* diagonal + origin */
- critical = 0; /*color origin different*/
- }
- else if (critical == 8) { /* pre-images of */
- precrit = 6; /* critical + origin */
- critical = 0; /*color origin different*/
- }
- else if (critical == 9) { /*attractors divide */
- precrit = 7; /* across y-axis */
- critical = 0;
- }
- else if (critical == 10) {/*attractors divide */
- precrit = 8; /* across x-axis */
- critical = 0;
- }
- else if (critical == 11) {/*rate of attraction*/
- precrit = 9; /* colored according to */
- critical = 0; /* distance from (0,0) */
- }
- else if (critical == 12) {/*rate of attraction*/
- precrit = 10; /* colored according to */
- critical = 0; /* angle with x-axis */
- }
- else if (critical == 13) {/*attractors divide */
- precrit = 11; /* across x and y axes */
- critical = 0;
- }
- break;
- case 'Q': p1 = atoi(optarg);
- if (optind < ac)
- p2 = atoi(av[optind++]);
- else
- usage();
- if (optind < ac)
- if (av[optind][0] == ',') {
- Qflag = atoi(av[optind+1]);
- optind += 2;
- }
- break;
- case 'R': randinit++; break;
- case 'S': settle=atoi(optarg);
- if (optind < ac)
- if (av[optind][0] == ',') {
- maxcrit = atoi(av[optind+1]);
- optind += 2;
- }
- break;
- case 'T': mapindex=atoi(optarg);
- if ((mapindex >= NUMMAPS) || (mapindex < 0))
- usage();
- map = Maps[mapindex];
- if (numeric)
- deriv = dnumeric;
- else
- deriv = Derivs[mapindex];
- if (optind < ac)
- if (av[optind][0] == ',') {
- model_1d = atoi(av[optind+1]) % 2;
- optind += 2;
- }
- setparams(mapindex);
- break;
- case 'U': lower = 0; break;
- case 'V': find = 1; break;
- case 'W': width=trawidth=criwidth=atoi(optarg);
- if (optind < ac)
- if (av[optind][0] == ',') {
- trawidth = atoi(av[optind+1]);
- optind += 2;
- }
- if (optind < ac)
- if (av[optind][0] == ',') {
- criwidth = atoi(av[optind+1]);
- optind += 2;
- }
- break;
- case 'X': start_x=atof(optarg); Xflag++; break;
- case 'Y': start_y=atof(optarg); Yflag++; break;
- case 'Z': upper = 0; break;
- case 'a': params[12]=atof(optarg); aflag++; break;
- case 'b': params[13]=atof(optarg); bflag++; break;
- case 'c': params[14]=atof(optarg); cflag++; break;
- case 'd': if (strcmp(optarg, "elay")) {
- params[15]=atof(optarg);
- dflag++;
- }
- else
- delay = atoi(av[optind++]);
- break;
- case 'e': params[16]=atof(optarg); eflag++; break;
- case 'f': params[17]=atof(optarg); fflag++; break;
- case 'g': params[18]=atof(optarg); gflag++; break;
- case 'h': y_range=atof(optarg); hflag++;
- if (optind < ac)
- if (av[optind][0] == ',') {
- t_y_range = atof(av[optind+1]);
- hflag++;
- optind += 2;
- }
- if (optind < ac)
- if (av[optind][0] == ',') {
- c_y_range = atof(av[optind+1]);
- hflag++;
- optind += 2;
- }
- break;
- case 'i': params[19]=atof(optarg); iflag++; break;
- case 'j': params[20]=atof(optarg); jflag++; break;
- case 'k': params[21]=atof(optarg); kflag++; break;
- case 'l': params[22]=atof(optarg); lflag++; break;
- case 'm': params[23]=atof(optarg); mflag++; break;
- case 'n': if (strcmp(optarg, "umeric"))
- if (strcmp(optarg, "umwheel"))
- dwell=atoi(optarg);
- else {
- numwheels = atoi(av[optind]);
- optind++;
- }
- else
- numeric=1;
- break;
- case 'o': savefile++; outname=optarg;
- if (optind < ac)
- if (av[optind][0] == ',') {
- savefile = atoi(av[optind+1]);
- optind += 2;
- }
- break;
- case 'p': portrait = 0; break;
- case 'q': use_avg_lyap = 0; break;
- case 'r': maxradius=atoi(optarg); break;
- case 's': spinlength=atoi(optarg); break;
- case 't': if (strcmp(optarg, "herm"))
- delta=atof(optarg);
- else {
- therm_index = atoi(av[optind++]);
- if (therm_index == -1)
- thermometer = !thermometer;
- if (optind < ac)
- if (av[optind][0] == ',') {
- therm_min = atof(av[optind+1]);
- optind += 2;
- }
- if (optind < ac)
- if (av[optind][0] == ',') {
- therm_max = atof(av[optind+1]);
- optind += 2;
- }
- }
- break;
- case 'u': usage(); break;
- case 'v': show=1; break;
- case 'w': x_range=atof(optarg); wflag++;
- if (optind < ac)
- if (av[optind][0] == ',') {
- t_x_range = atof(av[optind+1]);
- wflag++;
- optind += 2;
- }
- if (optind < ac)
- if (av[optind][0] == ',') {
- c_x_range = atof(av[optind+1]);
- wflag++;
- optind += 2;
- }
- break;
- case 'x': min_x=atof(optarg); xflag++;
- if (optind < ac)
- if (av[optind][0] == ',') {
- t_min_x = atof(av[optind+1]);
- xflag++;
- optind += 2;
- }
- if (optind < ac)
- if (av[optind][0] == ',') {
- c_min_x = atof(av[optind+1]);
- xflag++;
- optind += 2;
- }
- break;
- case 'y': min_y=atof(optarg); yflag++;
- if (optind < ac)
- if (av[optind][0] == ',') {
- t_min_y = atof(av[optind+1]);
- yflag++;
- optind += 2;
- }
- if (optind < ac)
- if (av[optind][0] == ',') {
- c_min_y = atof(av[optind+1]);
- yflag++;
- optind += 2;
- }
- break;
- case 'z': cdelt=atof(optarg); break;
- case '?': usage(); break;
- }
- }
- if (numeric)
- deriv = dnumeric;
- else
- deriv = Derivs[mapindex];
- max_x = min_x + x_range;
- max_y = min_y + y_range;
- a_minimums[0] = min_x; b_minimums[0] = min_y;
- a_maximums[0] = max_x; b_maximums[0] = max_y;
- reset_params();
- }
-
- #ifdef NorthSouth
-
- void
- calc_domain()
- {
- static double tmp1, tmp2, tmp3;
-
- tmp3 = A_one - 1.0;
- tmp1 = -tmp3/(2.0*A_two);
- tmp2 = (1.0/(2.0*A_two))*sqrt((tmp3*tmp3) - (4.0*A_zero*A_two));
- B_zero = tmp1 + tmp2;
- O_B_zero = tmp1 - tmp2;
- B_one = (-A_one / A_two) - (2.0 * B_zero);
- O_B_one = (-A_one / A_two) - (2.0 * O_B_zero);
- tmp3 = S_A_one - 1.0;
- tmp1 = -tmp3/(2.0*S_A_two);
- tmp2 = (1.0/(2.0*S_A_two))*sqrt((tmp3*tmp3) - (4.0*S_A_zero*S_A_two));
- S_B_zero = tmp1 + tmp2;
- O_S_B_zero = tmp1 - tmp2;
- S_B_one = (-S_A_one / S_A_two) - (2.0 * S_B_zero);
- O_S_B_one = (-S_A_one / S_A_two) - (2.0 * O_S_B_zero);
- if (B_one < 0) {
- B_zero = B_zero + B_one;
- B_one = -B_one;
- }
- if (O_B_one < 0) {
- O_B_zero = O_B_zero + O_B_one;
- O_B_one = -O_B_one;
- }
- if (S_B_one < 0) {
- S_B_zero = S_B_zero + S_B_one;
- S_B_one = -S_B_one;
- }
- if (O_S_B_one < 0) {
- O_S_B_zero = O_S_B_zero + O_S_B_one;
- O_S_B_one = -O_S_B_one;
- }
- if (lyap) {
- if (!Xflag)
- start_x = (-1.0*A_one)/(2.0*A_two); /* the critical point */
- if (!Yflag)
- if (model_1d)
- start_y = H_zero + (H_one * start_x);
- else
- start_y = (-1.0*S_A_one)/(2.0*S_A_two);
- }
- else {
- if ((singularity > B_zero) && (singularity < (B_zero+B_one))) {
- if (!wflag)
- x_range = B_one - (singularity - B_zero);
- if (!xflag)
- min_x = singularity;
- }
- else {
- if (!xflag)
- min_x = B_zero;
- if (!wflag)
- x_range = B_one;
- }
- max_x = min_x + x_range;
- if ((S_singularity > S_B_zero) &&
- (S_singularity < (S_B_zero+S_B_one))) {
- if (!hflag)
- y_range = S_B_one - (S_singularity - S_B_zero);
- if (!yflag)
- min_y = S_singularity;
- }
- else {
- if (!yflag)
- min_y = S_B_zero;
- if (!hflag)
- y_range = S_B_one;
- }
- if ((model_1d) && (!yflag) && (!hflag)) {
- max_y = H_zero + (H_one * max_x);
- min_y = H_zero + (H_one * min_x);
- y_range = max_y - min_y;
- }
- a_minimums[frame] = min_x; b_minimums[frame] = min_y;
- a_maximums[frame] = max_x; b_maximums[frame] = max_y;
- }
- }
-
- void
- calculate_params(map, p)
- int map;
- double *p;
- {
- static double tmp1, tmp2, tmp3, tmp4;
-
- params[6] = (params[2]*params[5]) - (params[3]*params[4]);
- params[18] = (params[14]*params[17]) - (params[15]*params[16]);
- if (map == 7) { /* North-South model */
- tmp1 = p[13] / p[21];
- tmp2 = 1.0 + (p[17] * p[19] / p[22]);
- tmp3 = p[20]+(p[21]*p[17]/p[18]); /* North coefficients */
- A_zero = (tmp1*tmp2*tmp3) - (p[13]*p[15]*p[15]*p[16]);
- tmp1 = (1.0-p[12]);
- tmp2 = p[13] / p[22];
- tmp3 = p[20] + (p[21]*p[17]/p[18]);
- A_one = tmp1 + (tmp2 * (-p[19] - ((p[17]/p[15]) * tmp3)));
- A_two = p[13] / p[22];
- A_star = -(p[13]*p[16]*p[16]*p[15]*p[22]/p[18]);
- singularity = p[19] + (p[14] * p[22] / p[18]);
- H_one = (p[10] * p[3] * p[18]) / (p[22] * p[15] * p[6]);
- H_zero=((p[10]/p[6])*(p[2]-(p[14]*p[3]/p[15])))-(H_one*p[19])+p[7];
- /* South quadratic coefficients and singularity */
- S_A_zero = H_zero + (H_one * A_zero) - (A_one * H_zero) +
- (A_two * H_zero * H_zero / H_one);
- S_A_one = A_one - (2.0 * A_two * H_zero / H_one);
- S_A_two = A_two / H_one;
- S_A_star = H_one * H_one * A_star;
- S_singularity = H_zero + (H_one * singularity);
- calc_domain();
- }
- }
- #endif /* NorthSouth */
-
- setparams(map)
- int map;
- {
- extern double therm_min, therm_max;
-
- if (!Aflag)
- params[0] = defparms[map][0];
- if (!Bflag)
- params[1] = defparms[map][1];
- if (!Cflag)
- params[2] = defparms[map][2];
- if (!Dflag)
- params[3] = defparms[map][3];
- if (!Eflag)
- params[4] = defparms[map][4];
- if (!Fflag)
- params[5] = defparms[map][5];
- if (!Gflag)
- params[6] = defparms[map][6];
- if (!Iflag)
- params[7] = defparms[map][7];
- if (!Jflag)
- params[8] = defparms[map][8];
- if (!Kflag)
- params[9] = defparms[map][9];
- if (!Lflag)
- params[10] = defparms[map][10];
- if (!Mflag)
- params[11] = defparms[map][11];
- if (!aflag)
- params[12] = defparms[map][12];
- if (!bflag)
- params[13] = defparms[map][13];
- if (!cflag)
- params[14] = defparms[map][14];
- if (!dflag)
- params[15] = defparms[map][15];
- if (!eflag)
- params[16] = defparms[map][16];
- if (!fflag)
- params[17] = defparms[map][17];
- if (!gflag)
- params[18] = defparms[map][18];
- if (!iflag)
- params[19] = defparms[map][19];
- if (!jflag)
- params[20] = defparms[map][20];
- if (!kflag)
- params[21] = defparms[map][21];
- if (!lflag)
- params[22] = defparms[map][22];
- if (!mflag)
- params[23] = defparms[map][23];
- if (!xflag)
- min_x = amins[map];
- if (!wflag)
- x_range = aranges[map];
- if (!yflag)
- min_y = bmins[map];
- if (!hflag)
- y_range = branges[map];
- max_x = min_x + x_range;
- max_y = min_y + y_range;
- a_minimums[frame] = min_x; b_minimums[frame] = min_y;
- a_maximums[frame] = max_x; b_maximums[frame] = max_y;
- if (lyap) {
- params[p1] = pmins[map][p1];
- params[p2] = pmins[map][p2];
- if (!xflag)
- min_x = pmins[map][p1];
- if (!yflag)
- min_y = pmins[map][p2];
- if (!wflag)
- max_x = pmaxs[map][p1];
- if (!hflag)
- max_y = pmaxs[map][p2];
- x_range = max_x - min_x;
- y_range = max_y - min_y;
- if (thermometer) {
- therm_min = min_x;
- therm_max = max_x;
- }
- a_minimums[frame] = min_x; b_minimums[frame] = min_y;
- a_maximums[frame] = max_x; b_maximums[frame] = max_y;
- }
- #ifdef NorthSouth
- if (map == 7)
- calculate_params(map, params);
- else {
- #endif
- if (!Xflag)
- start_x = definit[map][0];
- if (!Yflag)
- start_y = definit[map][1];
- #ifdef NorthSouth
- }
- #endif
- }
-
- reset_params()
- {
- extern int found_arc;
-
- if (mapindex >= 0)
- setparams(mapindex);
- x_inc = x_range / (double)width;
- y_inc = y_range / (double)height;
- point.x = 0; point.y = 0;
- maxexp = minexp = 0;
- run = 1;
- x = min_x; y = min_y;
- numcrits = 0; numarcs = 0; perind[frame] = 0; found_arc = 0;
- if (xflag < 2)
- t_min_x = min_x;
- if (yflag < 2)
- t_min_y = min_y;
- if (xflag < 3)
- c_min_x = min_x;
- if (yflag < 3)
- c_min_y = min_y;
- if (wflag < 2)
- t_x_range = x_range;
- if (hflag < 2)
- t_y_range = y_range;
- if (wflag < 3)
- c_x_range = x_range;
- if (hflag < 3)
- c_y_range = y_range;
- }
-
- Save_Parms(state)
- int state;
- {
- static int C, F, P, S, n, Q0, Q1, Q2, T, TW, TH, W, H, nw, a, h, L, i;
- static double x0, x1, w0, w1, y0, y1, h0, h1, tmp_params[MAXPARAMS];
-
- freemem();
- if (state) {
- for (i=0; i<MAXPARAMS; i++)
- tmp_params[i] = params[i];
- C = critical; P = portrait; S = settle; L = lyap; F = find;
- n = dwell;
- Q0 = p1; Q1 = p2; Q2 = Qflag;
- x0 = min_x; x1 = t_min_x;
- w0 = x_range; w1 = t_x_range;
- y0 = min_y; y1 = t_min_y;
- h0 = y_range; h1 = t_y_range;
- W = width; H = height;
- T = thermometer; thermometer = 0;
- TW = trawidth; TH = traheight;
- nw = numwheels; a = animate; h = histogram;
- }
- else {
- for (i=0; i<MAXPARAMS; i++)
- params[i] = tmp_params[i];
- map = Maps[mapindex];
- if (numeric)
- deriv = dnumeric;
- else
- deriv = Derivs[mapindex];
- settle = S; dwell = n; Qflag = Q2;
- p1 = Q0; p2 = Q1;
- lyap = L; critical = C; find = F; portrait = P;
- min_x = x0; t_min_x = x1; x_range = w0; t_x_range = w1;
- min_y = y0; t_min_y = y1; y_range = h0; t_y_range = h1;
- width = criwidth = W;
- height = criheight = H;
- thermometer = T;
- trawidth = TW;
- traheight = TH;
- numwheels = nw; animate = a; histogram = h;
- xflag = yflag = wflag = hflag = 0;
- reset_params();
- }
- setupmem();
- }
-
- void
- Change_Parms(num)
- int num;
- {
- extern long lrand48();
- extern double drand48();
-
- if (histogram)
- FreeHist();
- AllInitBuffer();
- run = 1; settle = DEMO_SETTLE; dwell = DEMO_DWELL;
- animate = lrand48() % 2;
- if (animate)
- clearflag = 0;
- else
- clearflag = lrand48() % 2;
- lyap = 1; find = critical = 0; portrait = 1;
- histogram = orbits_1d = precrit = 0;
- if (XDisplayWidth(dpy, screen) < 800) {
- width = DEMO_16_WIDTH; trawidth = DEMO_16_WIDTH;
- height = DEMO_16_HEIGHT; traheight = DEMO_16_WIDTH;
- }
- else {
- width = DEMO_WIDTH; trawidth = DEMO_WIDTH;
- height = DEMO_HEIGHT; traheight = DEMO_WIDTH;
- }
- xflag = yflag = wflag = hflag = 2;
- mapindex = 8 + MAP_OFF;
- p1 = 0; p2 = 1; Qflag = 0;
- if (num == 0) {
- min_x = 5.175781; t_min_x = -1.303307;
- x_range = 1.289063; t_x_range = 2.664537;
- y_range = 0.433594; t_y_range = 3.642277;
- min_y = 1.082031; t_min_y = -1.375339;
- }
- else if (num == 1) {
- mapindex = 9+MAP_OFF; Qflag = lrand48() % 4; clearflag = 0;
- animate = 1;
- min_x = (drand48()/2.0) + 0.2; t_min_x = 0.0; t_x_range = 1.0;
- min_y = (drand48()/2.0) + 0.2; t_min_y = 0.0; t_y_range = 1.0;
- x_range = 1.0 - min_x; y_range = 1.0 - min_y;
- }
- else if (num == 2) {
- min_x = 6.0; t_min_x = -1.617188;
- x_range = 6.0; t_x_range = 3.328126;
- y_range = 1.0; t_y_range = 5.478515;
- min_y = 2.0; t_min_y = -1.597656;
- }
- else if (num == 3) {
- mapindex = 2+MAP_OFF;
- p1 = 8; p2 = 10; Qflag = 3;
- min_x = 0.0; t_min_x = 0.0;
- x_range = 1.0; t_x_range = 1.0;
- y_range = 1.0; t_y_range = 1.0;
- min_y = 0.0; t_min_y = 0.0;
- }
- else if (num == 4) {
- p1 = 1; p2 = 0;
- min_x = 0.465057; t_min_x = -1.556885;
- x_range = 2.390259; t_x_range = 3.155823;
- y_range = 6.869888; t_y_range = 8.365632;
- min_y = 6.621113; t_min_y = -2.969666;
- }
- else if (num == 5) {
- mapindex = 9+MAP_OFF;
- histogram = 1; animate = 0;
- min_x = 0.660602; t_min_x = 0.491563;
- x_range = 0.064783; t_x_range = 0.548026;
- y_range = 0.01; t_y_range = 0.825685;
- min_y = 0.638281; t_min_y = 0.044144;
- }
- else if (num == 6) {
- min_x = 114.988281; t_min_x = -25.442434;
- x_range = 22.841563; t_x_range = 51.060763;
- y_range = 17.1875; t_y_range = 95.178377;
- min_y = 37.742; t_min_y = -20.741033;
- }
- else if (num == 7) {
- min_x = 131.0; t_min_x = -25.44325;
- x_range = 2.0; t_x_range = 51.06325;
- y_range = 0.22; t_y_range = 92.178;
- min_y = 36.65; t_min_y = -20.741;
- }
- else if (num == 8) {
- mapindex = 9+MAP_OFF;
- histogram = lrand48() % 2;
- min_x = 0.779; t_min_x = 0.0;
- x_range = 0.2053; t_x_range = 1.0;
- if (clearflag)
- y_range = 0.1523;
- else
- y_range = 0.01;
- t_y_range = 1.0;
- min_y = 0.418; t_min_y = 0.0;
- orbits_1d = 2; animate = 0;
- }
- else if (num == 9) {
- mapindex = 12+MAP_OFF;
- lyap = 0; histogram = 1; animate = 0;
- min_x = 0.0; t_min_x = -10.0;
- x_range = 1.0; t_x_range = 21.0;
- y_range = 1.0; t_y_range = 21.0;
- min_y = 0.0; t_min_y = -10.0;
- params[0] = (drand48()/10.0) - 0.3; Aflag = 1;
- params[1] = (drand48()/500.0) + 0.007; Bflag = 1;
- params[2] = (drand48()/5.0) - 0.3; Cflag = 1;
- }
- else {
- min_x = 5.8; t_min_x = -1.475;
- x_range = 20.0; t_x_range = 2.984375;
- y_range = 3.0; t_y_range = 4.25;
- min_y = 1.8; t_min_y = -1.509375;
- }
- if (histogram)
- HistoMem();
- map = Maps[mapindex];
- if (numeric)
- deriv = dnumeric;
- else
- deriv = Derivs[mapindex];
- reset_params();
- mapindex = -1;
- }
-